package py.progweb.sgc.gui.client.dialog;

import py.progweb.sgc.gui.client.service.ABMService;
import py.progweb.sgc.gui.client.service.ABMServiceAsync;
import py.progweb.sgc.gui.shared.dialogmodel.DataRecord;
import py.progweb.sgc.model.Cliente;

import com.google.gwt.core.client.GWT;
import com.smartgwt.client.widgets.form.fields.IntegerItem;
import com.smartgwt.client.widgets.form.fields.TextItem;

public class FormularioClientes extends FormularioBase {

	Cliente cliente = new Cliente();
	TextItem codClientePk, nombre, apellido, direccion, telefono;
	IntegerItem cedula;
	ABMServiceAsync service;

	public FormularioClientes(VentanaBase padre) {
		super("Cliente", padre);

		codClientePk = new TextItem();
		codClientePk.setTitle("codClientePk");
		codClientePk.setDisabled(true);

		cedula = new IntegerItem();
		cedula.setTitle("Cedula");
		cedula.setRequired(true);
		
		nombre = new TextItem();
		nombre.setTitle("Nombre");
		nombre.setRequired(true);

		apellido = new TextItem();
		apellido.setTitle("Apellido");
		apellido.setRequired(true);

		direccion = new TextItem();
		direccion.setTitle("Direccion");
		direccion.setRequired(false);

		telefono = new TextItem();
		telefono.setTitle("Telefono");
		telefono.setRequired(false);

		this.setItems(codClientePk, cedula, nombre, apellido, direccion,
				telefono);

		service = GWT.create(ABMService.class);
	}

	@Override
	public void reset() {
		codClientePk.setValue("");
		nombre.setValue("");
		cedula.setValue("");
		apellido.setValue("");
		direccion.setValue("");
		telefono.setValue("");
	}

	@Override
	protected void guardar() {
		if (!vacio(codClientePk.getValue()))
			cliente.setCodClientePk(Integer.parseInt(codClientePk.getValue()
					.toString()));
		cliente.setNombre(nombre.getValue().toString());
		cliente.setApellido(apellido.getValue().toString());
		cliente.setCedula((Integer)cedula.getValue());

		if (!vacio(direccion.getValue())) {
			cliente.setDireccion(direccion.getValue().toString());
		} else {
			cliente.setDireccion("");
		}

		if (!vacio(telefono.getValue())) {
			cliente.setTelefono(telefono.getValue().toString());
		} else {
			cliente.setTelefono("");
		}

		service.guardar(cliente, callback);
	}

	public void setData(DataRecord dr) {
		codClientePk.setValue(dr.getAtributo("codClientePk").toString());
		cedula.setValue((Integer) dr.getAtributo("cedula"));
		nombre.setValue((String) dr.getAtributo("nombre"));
		apellido.setValue((String) dr.getAtributo("apellido"));
		direccion.setValue((String) dr.getAtributo("direccion"));
		telefono.setValue((String) dr.getAtributo("telefono"));
	}
}
